|
|
|
|
|
|
|
/*
* Caller's buffer is too small.%0
*/
#define ERROR_BUFFER_INVALID (RASBASE+10)
/*
* The buffer is invalid.%0
*/
#define ERROR_INVALID_SIZE (RASBASE+32)
/*
* The structure size is incorrect.%0
*/ |
|
|
|
|
|
|
|
|
"Structure size incorrect? How can the structure size be incorrect?" I couldn't see it. |
|
|
|
|
|
|
|
|
"I feel the same way." She frowned. "The dwSize parameter is 4 bytes and the string is 257 bytes, exactly as shown in the C declaration. That's 261 bytesexactly what the RasEntrySize variable contains. How can the structure size be incorrect?" |
|
|
|
|
|
|
|
|
I looked over the ras.h header file. The only thing that was slightly suspicious was the include statement at the top of the file: |
|
|
|
|
|
|
|
|
#include <pshpack4.h>
Abstract:
This file turns 4-byte packing of structures on.
(That is, it disables automatic alignment of structure fields.)
An include file is needed because various compilers do this in different ways. For
Microsoft-compatible compilers, this file uses the push option to the pack pragma
so that the poppack.h include file can restore the previous packing reliably. |
|
|
|
|
|
|
|
|
So structures in this file use 4-byte packing instead of the usual 1-byte packing. DT and I looked at each other and reached for our juices, which had been brought to our table while we were working. We took a deep drink, then exchanged a look of shock as a sudden dizziness struck us both. Could it be poison? |
|
|
|
|
|
|
|
|
|
EDITOR'S NOTE At this point the narrative ends. If DT's computer is going to make a call, it looks like it's going to be up to you. Be sure you have at least two entries in your dialup networking phone book before working on the problem. |
|
|
|
|
|
|
|